-
Notifications
You must be signed in to change notification settings - Fork 228
feat(nr-ebpf-agent): support global.images registry, pullSecrets, and pullPolicy #2004
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
dpacheconr
wants to merge
4
commits into
newrelic:master
Choose a base branch
from
dpacheconr:support/nr-ebpf-agent-final
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
feat(nr-ebpf-agent): support global.images registry, pullSecrets, and pullPolicy #2004
dpacheconr
wants to merge
4
commits into
newrelic:master
from
dpacheconr:support/nr-ebpf-agent-final
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
d194a94 to
a5fb434
Compare
a5fb434 to
6e8a4f8
Compare
… images Make all nr-ebpf-agent container images respect the global.images.registry setting, enabling consistent private registry configuration across nri-bundle. Changes: - Updated values.yaml with clarifying comments for all 3 images - Added kernelHeaderInstaller configuration (previously hardcoded) - Added helpers to _helpers.tpl for all 3 images - Updated both daemonset templates to use new image helpers Implementation details: - If global.images.registry is set AND repository matches default, uses global registry - If repository is explicitly set to custom value, that takes precedence - If global registry is not set, defaults to original docker.io paths - kernel-header-installer is now configurable (was previously hardcoded)
Update imagePullSecrets handling to cascade from global.images.pullSecrets: - Updated both daemonsets (nr-ebpf-agent-daemonset.yaml, otel-collector-daemonset.yaml) - Both use common library renderPullSecrets helper with concat - Global and chart-level pullSecrets are concatenated together Configuration hierarchy: 1. global.images.pullSecrets (highest priority) 2. Chart-level pullSecrets Both sources are concatenated to support flexible secret management.
Add support for cascading pullPolicy from global.images.pullPolicy setting:
- Added pullPolicy helpers to _helpers.tpl for all 3 images
- Updated both daemonsets to use pullPolicy helpers
Configuration hierarchy for pullPolicy:
1. global.images.pullPolicy (highest priority)
2. Chart-level image.pullPolicy
3. Default: IfNotPresent
Users can now configure pull policy globally:
global:
images:
pullPolicy: Always
6e8a4f8 to
bf93d6b
Compare
…o enable global.images.registry - Remove docker.io/ prefix from ebpfAgent.image.repository - Remove docker.io/ prefix from ebpfAgent.kernelHeaderInstaller.repository - Remove docker.io/ prefix from otelCollector.image.repository The docker.io/ prefix prevents common-library helpers from correctly applying global.images.registry. This fix enables air-gapped/private registry support that was implemented in the template helpers. Without this fix, global registry results in double-prefix: harbor.corp.net/docker.io/newrelic/newrelic-ebpf-agent With this fix, global registry works correctly: harbor.corp.net/newrelic/newrelic-ebpf-agent
dpacheconr
added a commit
to dpacheconr/helm-charts
that referenced
this pull request
Nov 28, 2025
…erage - Add support for global.serviceAccount.annotations for IAM roles (IRSA/Workload Identity/Pod Identity) - Add 24 comprehensive unit tests validating global value inheritance - Tests cover: images, serviceAccount, labels, podLabels, nodeSelector, tolerations, affinity, priorityClassName, dnsConfig, pullSecrets, privileged mode Note: Requires PR newrelic#2004 to be merged first for global.images.registry support Test Results: 24/24 passing (100%) - All global value inheritance scenarios validated - Override precedence working correctly - Backward compatibility maintained
dpacheconr
added a commit
to dpacheconr/helm-charts
that referenced
this pull request
Nov 28, 2025
…erage - Add support for global.serviceAccount.annotations for IAM roles (IRSA/Workload Identity/Pod Identity) - Add 24 comprehensive unit tests validating global value inheritance - Tests cover: images, serviceAccount, labels, podLabels, nodeSelector, tolerations, affinity, priorityClassName, dnsConfig, pullSecrets, privileged mode Note: Requires PR newrelic#2004 to be merged first for global.images.registry support Test Results: 24/24 passing (100%) - All global value inheritance scenarios validated - Override precedence working correctly - Backward compatibility maintained
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Add support for cascading registry, pullSecrets, and pullPolicy from global settings to nr-ebpf-agent.
Phase 1: Global.Images.Registry Support ✅
Phase 2: Global.Images.PullSecrets Support ✅
Phase 3: Global.Images.PullPolicy Support ✅ (NEW)
Configuration Hierarchy
For Image Registry:
global.images.registry(if set AND repository matches default)For ImagePullSecrets:
global.images.pullSecrets(highest priority)pullSecretsBoth sources are concatenated to support flexible secret management.
For ImagePullPolicy:
global.images.pullPolicy(highest priority)pullPolicyIfNotPresentImplementation Details
Images covered:
Kernel header installer init container
eBPF agent main container
OpenTelemetry collector container
If global.images.registry is set AND repository matches default, uses global registry
If repository is explicitly set to custom value, that takes precedence
If global registry is not set, defaults to original docker.io paths
kernel-header-installer is now configurable (was previously hardcoded)
PullPolicy hierarchy ensures global settings cascade down when no explicit chart configuration is provided
Test Plan
Phase 1 (Registry):
Phase 2 (PullSecrets):
Phase 3 (PullPolicy):
Impact
Once merged, users can now configure nr-ebpf-agent with comprehensive global image settings:
```yaml
global:
images:
registry: "my.private.registry.com"
pullSecrets:
- name: my-registry-credentials
pullPolicy: Always
```